package com.zjun.strategy;

public interface AbstractExecuteStrategy <REQUEST,RESPONSE>{
    /**
     *
     * @return 执行策略标识
     */
    default String mark(){
        return null;
    }

    /**
     *
     * @return 执行策略匹配标识 比如 return "ABC*"返回以ABC为开头的标识策略
     */
    default String patternMatchMark(){
        return null;
    }

    /**
     * 执行策略
     * @param requestParam 执行策略参数
     */
    default void execute(REQUEST requestParam){

    }

    /**
     * 执行策略，并返回
     * @param requestParam 执行策略入参
     * @return 执行策略后返回值
     */
    default RESPONSE executeResponse(REQUEST requestParam){
        return null;
    }
}
